﻿/*********************************************************
 * 开发人员：小兵
 * 创建时间：2012-8-30 12:02:41
 * 描述说明：
 * 
 * 更改历史：
 * 
 * *******************************************************/
namespace Mozlite.Components
{
    using System;
    using System.Web;
    using System.Data;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    /// <summary>
    /// 用户文件夹。
    /// </summary>
    public class UserFolder : IRecursion<UserFolder>
    {
        /// <summary>
        /// 用户ID。
        /// </summary>
        public int UserID { get; set; }
        /// <summary>
        /// 文件夹ID。
        /// </summary>
        public int FolderID { get; set; }
        /// <summary>
        /// 文件夹名称。
        /// </summary>
        public string FolderName { get; set; }
        /// <summary>
        /// 父文件夹ID。
        /// </summary>
        public int ParentID { get; set; }
        /// <summary>
        /// 创建日期。
        /// </summary>
        public DateTime CreateDate { get; set; }
        /// <summary>
        /// 更新日期。
        /// </summary>
        public DateTime LastUpdateDate { get; set; }
        /// <summary>
        /// 文件大小。
        /// </summary>
        public long ContentLength { get; set; }
        /// <summary>
        /// 判断是否有子文件夹。
        /// </summary>
        public bool HasChildren { get { return Children != null && Children.Count > 0; } }
        /// <summary>
        /// 子文件夹。
        /// </summary>
        public List<UserFolder> Children
        {
            get
            {
                List<UserFolder> children;
                FileStorages.GetUserFoldersByParentID(UserID).TryGetValue(FolderID, out children);
                return children;
            }
        }
        /// <summary>
        /// 父文件夹实例对象。
        /// </summary>
        public UserFolder Parent
        {
            get
            {
                UserFolder parent;
                FileStorages.GetUserFolders(UserID).TryGetValue(ParentID, out parent);
                return parent;
            }
        }
        /// <summary>
        /// 当前文件夹的文件。
        /// </summary>
        public List<UserFile> Files
        {
            get
            {
                return FileStorages.GetUserFiles(UserID, FolderID);
            }
        }
    }
}
